Targeting items to a user of a social networking system based on a predicted event for the user

ABSTRACT

A social networking system predicts a life event (e.g., birthday, change in marital status, relationship status, etc.) for a target user based on information associated with the user. The social networking system identifies gift suggestions to provide to one or more friends of the user based on the predicted event. A gift suggestion may include an invitation to purchase or send an item, voucher, or other gift to the target user, wherein the gift may be determined based on information about the target user’s interests obtained by the social networking system. The social networking system sends a gift suggestion to one or more friends of the target user, where the gift suggestion identifies the predicted life event and provides the gift suggestion to the target user’s friend. The advertisement may require action by multiple of the target user’s friends before the gift is sent to the target user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of co-pending U.S. Application No.16/592,348, filed Oct. 3, 2019, which is a continuation of U.S.Application No. 15/191,230, filed Jun. 23, 2016, now U.S. Pat. No.10,475,087, which is a continuation of U.S. Application No. 13/732,322,filed Dec. 31, 2012, now U.S. Pat. No. 9,406,092, which is a division ofU.S. Application No. 13/327,677, filed Dec. 15, 2011, now U.S. Pat. No.8,666,836, each of which is incorporated by reference in its entirety.

BACKGROUND

This invention relates generally to social networking, and morespecifically to using the data contained within a social network totarget items to a social networking system user based on a predictedevent associated with the user.

Social networks, or social utilities that track and enable connectionsbetween users (including people, businesses, and other entities), havebecome prevalent in recent years. In particular, social networkingsystems allow users to share public and private information with otherusers, including information about significant events in the users’lives. These significant events may include changes in marital status,birthdays, new jobs, the birth of new children, graduation, or death,just to name a few. One way for users to share such event information isto add or update the information on their user profile. A user profilecontains user provided information such as marital status, birthday,graduation date, and/or other user-specific data. Other users can thenreview the shared information by browsing user profiles or searching forprofiles including specific data.

Social networking systems typically use the user-provided profileinformation to present additional information that may be relevant tothe users. For example, information related to an entry level jobplacement may not be generally relevant to most users of the socialnetworking system; however, the information is likely more relevant to arecent college or high school graduate. Thus users of the socialnetworking system, or external parties such as advertisers use userprofile information to target their message to an audience believed tobe more receptive to the content of the message.

Advertisers in particular have attempted to leverage the profileinformation provided by users by targeting their ads to users whoseinterests best align with the products or services being advertised. Forexample, an advertiser using a social networking system may displaybanner ads for wedding locations to users who have updated their profileto indicate a change in marital status. However, targeting advertisingto users is not very effective when the users’ profiles are inaccurateor incomplete, which may occur because the profile information issupplied by the user and not verified for accuracy. Thus, in the aboveexample, an advertiser may send promotional material or advertisementsto a user who is married, but nonetheless has not reported as beingmarried within the social networking system.

Even if a user profile is accurate, relevant advertisements often reachthe intended recipient too late. Users of a social networking systemgenerally do not update their profile information to reflect an eventuntil after the event has occurred. Thus, in the above example, a userwho got married may not update the new marital status on the socialnetworking system until after the marriage. Consequently, an advertiserseeking to promote a wedding venue and relying on a user profile updatewill not reach the user until after the user likely has no need for awedding venue.

An advertiser may try to predict that a user will get married at afuture time if the user’s profile indicates that the user is engaged.However, this system of prediction is unreliable because, as statedabove, users do not update their profile very frequently and the profileinformation may not be accurate. Thus an advertiser could spend money toreach a user on a social networking system without reaching its targetaudience.

A social networking system and its users also rely on user providedprofile information to communicate and interact with each user. A socialnetworking system often uses user profile information to suggest friendsor groups that may be of particular interest to each user. However, asocial networking system and its users face problems similar to thoseoutlined above, such as timeliness and accuracy of user provided profileinformation. Certain information is time sensitive and relevant onlybefore a particular event occurs. Since users typically do not updatetheir profile information until after an event has occurred, socialnetworking systems relying on a profile update to provide such timesensitive information are bound to deliver the information too late.Similarly, user provided profile information may be inaccurate,resulting in inaccurate or irrelevant information suggestions.

SUMMARY

To provide content to a user of the social networking system moreeffectively, and in a more timely fashion, it may be desirable topredict the user’s needs or an upcoming change in the user’s needs in amore accurate manner. Rather than merely relying on a user’s timelinessand accuracy in updating his or her profile information, embodiments ofthe invention predict events associated with a user based on informationavailable about the user and accessible by the social networking system.An event, for example, may be a change in marital status, a birthday, anew job, a birth of a child, a graduation, or a death of a personassociated with the user, just to name a few. Beyond simple reliance ona change in user profile information, the described approach is betterable to use all the information contained in the social networkingsystem such as wall posts, instant messages, e-mail messages, etc., todetermine whether a user has experienced such an event and/or to predictwhether a user has an upcoming event in the future.

Predicting an event associated with a user may allow the socialnetworking system to provide content to the user. Content may includeinformation such an advertisement or a gift such as a service or a good,including virtual goods and real goods that may be available for free orfor purchase. In one embodiment, the content is selected based on user’sactivity within the social networking system, such as the users’bookmarks, items in the user’s wish-list or shopping cart etc.Additionally, the selected content may be displayed to friends of theusers within the social networking system wherein the friends can sendthe content to the user. For example, the user’s friend may send avirtual good available for free to the user within the social networkingsystem. In another embodiment, the user’s friend may purchase adisplayed item as a gift for the user, wherein the purchased gift itemmay be sent to the user.

The features and advantages described in this summary and the followingdetailed description are not all-inclusive. Many additional features andadvantages will be apparent to one of ordinary skill in the art in viewof the drawings, specification, and claims hereof.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of a system for targeting content to socialnetworking system users based on upcoming events associated with one ormore users, in accordance with an embodiment of the invention.

FIG. 2 is a network diagram of a system for targeting content to socialnetworking system users based on upcoming events associated with one ormore users, in accordance with an embodiment of the invention.

FIG. 3 is a block diagram of a social networking system, in accordancewith an embodiment of the invention.

FIG. 4 is a flow chart of a process for targeting content to socialnetworking system users based on upcoming events associated with one ormore users, in accordance with an embodiment of the invention.

FIG. 5A illustrates a user interface displaying a gift suggestion basedon an upcoming event inferred by the social networking system, inaccordance with an embodiment of the invention.

FIG. 5B illustrates a user interface displaying links to giftsuggestions based on an upcoming event inferred by the social networkingsystem, in accordance with an embodiment of the invention.

The figures depict various embodiments of the present invention forpurposes of illustration only. One skilled in the art will readilyrecognize from the following discussion that alternative embodiments ofthe structures and methods illustrated herein may be employed withoutdeparting from the principles of the invention described herein.

DETAILED DESCRIPTION Overview

A social networking system offers its users the ability to communicateand interact with other users of the system. In use, users join thesocial networking system and then add connections to a number of otherusers to whom they desire to be connected. As used herein, the term“friend” refers to any other user to whom a user has formed aconnection, association, or relationship via the social networkingsystem. Connections may be added explicitly by a user, for example, theuser selecting a particular other user to be a friend, or automaticallycreated by the social networking site based on common characteristics ofthe users (e.g., users who are alumni of the same educationalinstitution). Connections in social networking systems are usually inboth directions, but need not be, so the terms “user” and “friend”depend on the frame of reference. For example, if Bob and Joe are bothusers and connected to each other within the social networking system,Bob and Joe, both users, are also each other’s friends. The connectionbetween users may be a direct connection; however, some embodiments of asocial networking system allow the connection to be indirect via one ormore levels of connections. Also, the term friend need not require thatusers actually be friends in real life, (which would generally be thecase when one of the users is a business or other entity); it simplyimplies a connection in the social networking system.

In addition to interactions with other users, the social networkingsystem provides users with the ability to take actions on various typesof items supported by the system. These items may include groups ornetworks (where “networks” here refer not to physical communicationnetworks, but rather social networks of people) to which users of thesocial networking system may belong, events or calendar entries in whicha user might be interested, computer-based applications that a user mayuse via the system, and transactions that allow users to buy or sellitems via the system. These are just a few examples of the items uponwhich a user may act on a social networking system, and many others arepossible.

Figure (FIG. ) 1 illustrates a system for targeting content to socialnetworking system users based on upcoming events associated with one ormore users. The system includes a user 102, his or her social networkingsystem data, 160, an event prediction engine 170, a content selectionengine 180, a targeting engine 185, a communication engine 195 andfriends 104 of the user within the social networking system.

As described above, a social networking system user 102 is a person oran entity capable of interacting with one or more social networkingsystem elements. In one embodiment, the user’s social networking systemactivity may be recorded and included in social networking system data160. The social networking system data 160 may include a social graph,wherein the user 102 and social networking system elements may be nodesand the user’s activities or interactions with the elements mayrepresent edges connecting the appropriate nodes.

In one embodiment, the event prediction engine 170 parses a user’ssocial networking system data to identify any upcoming events associatedwith the user. Upcoming events may include events such as a birthday,graduation, wedding, engagement, etc., or plans that a user has made,such as going to a concert, a move, a play, etc. The event predictionengine 170 may predict such events based on the user’s profileinformation or based on content of one or more messages send to orreceived by the user within the social networking system.

In one embodiment, the content selection engine 180 identifies contentto provide to the user and the user’s friends 104. The content selectionengine accounts for a type of event predicted by the event predictionengine 170 and the user’s interests. For example, a user who ispredicted to graduate from college may be interested in content that maydiffer from a user who is predicted to get married. As such, the contentselection engine 180 identifies content items appropriate to an eventselected by the event prediction engine 170. Additionally, the contentselection engine 180 may identify content items in a user’s bookmarks,wish-lists and shopping carts to select those items or content relatedto those items. In one embodiment, the selected content is provided tothe targeting engine 185.

The targeting engine 185 identifies social networking system users todisplay the content selected by the content selection engine 180. Thesocial networking system users include the user 102 and the user’sfriends 104. In one embodiment, the targeting engine 185 selects one ormore a user’s friends 104 if the friends are likely to send thedisplayed content to the user. In one embodiment, the targeting engine185 determines that a friend is likely to send a content item to theuser if the friend interacts frequently with the user 102, if the userhas received content items from the user, etc. In one embodiment, thetargeting engine 185 provides the selected content to the identifiedsocial networking system users.

In one embodiment, social networking system users, such as a user’sfriend 104 may decide to send the content provided by the targetingengine to the user 102. In such an instance, the communications engine190 receives a request from a friend 104 a and sends the content to theuser 102. In certain instances, the selected content may include an itemthat the friend 104 a has purchased as a gift for the user 102. In suchan instance, the communication engine 190 sends a notification of thegift to the user within the social networking system. If the gift is avirtual good, the communication engine 190 may also send the virtualgood to the user within the social networking system.

System Architecture

FIG. 2 is a high level block diagram illustrating a system environmentsuitable for operation of a social networking system 100. The systemenvironment comprises one or more client devices 210, one or morethird-party websites 140, a social networking system 100 comprising theevent prediction engine 170, and a network 220. In alternativeconfigurations, different and/or additional modules can be included inthe system.

The client devices 210 comprise one or more computing devices that canreceive user input and can transmit and receive data via the network220. For example, the client devices 210 may be desktop computers,laptop computers, tablet computers (pads), smart phones, personaldigital assistants (PDAs), or any other device including computingfunctionality and data communication capabilities. The client devices220 are configured to communicate via network 220, which may compriseany combination of local area and/or wide area networks, using bothwired and wireless communication systems. As described above, the thirdparty websites 14 are coupled to the network 220 for communicatingmessages to the social networking system 100 about the users’ actionsoff the system 100.

The social networking system 100 comprises a computing system thatallows users to communicate or otherwise interact with each other andaccess content as described herein. In one embodiment, the socialnetworking system 100 stores user profiles that describe the users of asocial network, including biographic, demographic, and other types ofdescriptive information, such as work experience, educational history,hobbies or preferences, location, and the like. The system 100 furtherstores data describing one or more relationships between differentusers. The relationship information may indicate users who have similaror common work experience, group userships, hobbies, or educationalhistory. Additionally, the social network permits users to submit userdefined relationships between different users, allowing users to specifytheir relationships with other users. For example, these user definedrelationships allows users to generate relationships with other usersthat parallel the users’ real-life relationships, such as friends,co-workers, partners, and so forth. Users may select from predefinedtypes of relationships, or define their own relationship types asneeded.

FIG. 3 is an example block diagram of a social networking system 100.The social networking system 100 includes a web server 350, a data log160, a user profile store 305, an event prediction engine 170, a contentselection engine 180, a targeting engine 185 and a communications engine195. In other embodiments, the social networking system 100 may includeadditional, fewer, or different modules for various applications.

The web server 350 links the social networking system 100 via thenetwork 220 to one or more client devices 210, as well as to one or morethird party websites 140. The web server 350 may include a mail serveror other messaging functionality for receiving and routing messagesbetween the social networking system 100 and the client devices 210 orthird party websites 140. The messages can be instant messages, queuedmessages (e.g., email), text and SMS messages, or any other suitablemessaging technique.

The data log 160 is capable of receiving information about user actionson and/or off the social networking system 100. For example, the datalog 160 may be populated with information about these user interactionswith other users or objects of the social networking system 100.Thetypes of actions that a user may perform in connection with an objectare defined for each object and largely depend on the type of itemrepresented by the object. A particular action may be associated withmultiple objects. Described below are a number of examples of particulartypes of objects that may be defined for the social networking system,as well as a number of actions that can be taken for each object. Theseobjects and the actions discussed herein are provided for illustrationpurposes only, and it can be appreciated that an unlimited number ofvariations and features can be provided on a social networking system.

In one embodiment, the social networking system maintains a user profilefor each user of the system. Any action that a particular user takeswith respect to another user is stored in the data log 106. Such actionsmay include, for example, adding a connection to the other user, sendinga message to the other user, reading a message from the other user,viewing content associated with the other user, attending an eventposted by another user, among others. In addition, a number of actionsdescribed below in connection with other objects are directed atparticular users, so these actions are associated with those users aswell.

A group may be defined for a group or network of users. For example, auser may define a group to be a fan club for a particular band. Thesystem would maintain a group for that fan club, which might includeinformation about the band, media content (e.g., songs or music videos)by the band, and discussion boards on which users of the group cancomment about the band. Accordingly, user actions that are possible withrespect to a group might include joining the group, viewing the content,listening to songs, watching videos, and posting a message on thediscussion board.

Similarly, an event may be defined for a particular event created withinthe social networking system, such as a birthday party. A user maycreate the event by defining information about the event such as thetime and place and a list of invitees. Other users may accept theinvitation, comment about the event, post their own content (e.g.,pictures from the event), and perform any other actions enabled by thesocial networking system for the event. Accordingly, the creator of theevent as well as the invitees for the event may perform various actionsthat are associated with that.

The social networking system may also enable users to add applicationsto their profiles. These applications provide enhanced content andinteractivity within the social networking system, which maintains anapplication object for each application hosted in the system. Theapplications may be provided by the system operator and/or by thirdparty developers. An example application is an enhanced messagingservice, in which users can send virtual objects (such as a “gift” or“flowers”) and an optional message to another user. The use of anyfunctionality offered by the application may thus constitute an actionby the user in connection with the application. In addition, continuingthe example from above, the receipt of the virtual gift or message mayalso be considered an action in connection with the application. It cantherefore be appreciated that actions may be passive and need notrequire active participation by a user.

Another type of object within a social networking system may include atransaction object, which enables users to make transactions, such asbuying, selling, renting, trading, or exchanging with other users. Forexample, a user may post a classified ad on the social networking systemto sell a car. The user would thus define a new transaction, which mayinclude a description of the car, a picture, and an asking price. Otherusers can then view this information and possibly interact further withthe transaction by posting questions about the car and accepting theoffer or making a counteroffer. Each of these interactions — view,question posting, offer, and counteroffer — are actions that areassociated with the particular transaction.

In one embodiment, the social networking system also logs actions that auser takes on a third party website 140. The social networking systemmay learn of the user’s actions on the third party website 140 via anyof a number of methods. For example, the third party website 140 maysend a message to the social networking system when a particular actionby a user occurs on the third party website 140. In one example, if thethird party website 140 is a commercial website on which users maypurchase items, the third party website 140 may inform the socialnetworking system when a user of the social networking system buys anitem on the third party website 140.

In another embodiment, the social networking system logs actions takenby its users in the real world by observing qualifying actions andpopulating the data log 160 with an entry describing the action. In oneembodiment, the action to be tracked is a credit card transaction, wherea user of the social networking system may optionally opt in byregistering a credit card. When the registered credit card is used in aqualifying way (e.g., a purchase made at a point of sale), the creditcard company (or clearinghouse) sends a message to the social networkingsystem. In this scenario, a computing system at the credit card companyor clearinghouse may provide the information to the social networkingsystem 100 in a message. The message may contain information about thecredit card transaction, such the item purchased, the date, and locationof the purchase. The social networking system thus tracks real-worldactions such as this purchase in the data log 160.

Another example illustrating real-world actions that may be trackedinvolves the user’s location. A user may configure a cellular phonehaving location technology (e.g., GPS) to communicate the user’slocation to the social networking system. This may be accomplished, forexample, by downloading an application to the cellular phone, where theapplication polls the location unit in the phone and sends a messagecontaining the user’s location to the social networking system. This maybe performed periodically or upon certain triggering events associatedwith locations. For example, a triggering event can include the userbeing within to a specific city, or at particular destination such as arestaurant, business, or venue. In this application, the cellular phone(or other GPS-enabled device) provides the information to the socialnetworking system 100.

Another example illustrating real-world actions that may be trackedinvolves what program material the user is accessing on a televisionsystem. A television and/or set-top receiver may transmit a messageindicating that a user is viewing (or recording) a particular program ona particular channel at a particular time. Again, these examples arepresented to illustrate some of the types of devices and actions thatmay be captured as actions by a user and communicated to the socialnetworking system. A limitless variety of other applications may beimplemented to capture real-world actions associated with a particularuser and send that information to the social networking system.

When a user takes an action on or off the social networking system, theaction is recorded in the data log 160. In one embodiment, the socialnetworking system maintains the data log 160 as a database of entries.When an action is taken on or off the system, therefore, the socialnetworking system adds an entry for that action to the log 160. In oneembodiment, an entry comprises some or all of the following information:

-   Time: a timestamp of when the action occurred.-   User: an identifier for the user who performed the action.-   Target: an identifier for the user to whom the action was directed.-   Action Type: an identifier for the type of action performed.-   Object: an identifier for an object acted on by the action.-   Content: content associated with the action.

It can be appreciated that many types of actions that are possiblewithin the social networking system need not require all of thisinformation. For example, if a user changes a picture associated withthe user’s profile, the action may be logged with just the user’sidentifier, an action type defining a picture change, and the picture ora link thereto as the content.

In one embodiment, the social networking system 100 generate a socialgraph that uses nodes to identify various objects and edges connectingnodes to identify relationships between different objects. An edgebetween two nodes in the social graph represents a particular kind ofconnection between the two nodes, which may result from an action thatwas performed by one of the nodes on the other node.

For example, if a first user establishes a connection with a second userin the social networking system, user profiles of the first user and thesecond users may act as nodes in the social graph. The connectionbetween the first user and the second user may be stored as an edgebetween the nodes associated with the first user and the second user.Continuing this example, the second user may then send the first user amessage within the social networking system 100, wherein the action ofsending the message is another edge between the two nodes in the socialgraph representing the first user and the second user. Additionally, themessage itself may be included in the social graph as another nodeconnected to the nodes representing the first user and the second user

After an amount of time, the data log 160 will become populated with anumber of entries that describe actions taken by and communicationassociated with the users of the social networking system. The data log160 thus contains a very rich set of data about the actions of theusers, and can be analyzed and filtered to identify trends andrelationships in the actions of the users, as well as affinities betweenthe users and various objects. In one embodiment, the data log 160 canbe analyzed to identify key words indicative of a event associated withthe user 102.

The event prediction engine 170 predicts a event associated with a userof the social networking system. As described above in reference to FIG.1 , events comprise a change in marital status, relationship status,age, graduation status, employment statues, a change in the number offamily users such as newborn or adopted children or siblings or death ofa person or a pet associated with the user. In one embodiment, the eventprediction engine 170 computes the probability of a user undergoing aevent using a machine learning model and historical data of other usersof the social networking system who have went through events. In oneembodiment, the machine learning model of the event prediction engine170 is trained using the data logs 106 retrieved for each user, whethereach user went through an event change and the type of event. Themachine learning model can use several data points within the retrieveddata as variables to generate a predictive algorithm. For example, theuse of words such as “congratulations,” presence of virtual giftsoffered to the users, the number of times other users clicked on theuser’s profile, change in other profile information, such as a change inaddress or last name, the number of new friends or connections madewithin the social networking system etc. The event prediction engineuses the data log 160 of the first user as input signal to the eventprediction engine 170. In one embodiment, the event prediction engine170 outputs a probability score indicative of whether the user willundergo particular event based on historical data of other users. In oneembodiment, the event prediction engine 170 classifies the user as goingthrough an event change if the probability score of the user is higherthan a threshold score provided by the social networking system. Inanother embodiment, event prediction engine 170 identifies wordsindicative of an event in the user communications data. The words can beprovided by the social networking system. In such an embodiment, theevent prediction engine assigns a high probability of an event change tothe user whose communications data indicates a high incidence of theidentified words.

The content selection engine 180 identifies content based on an eventassociated with a user and information about the user. In oneembodiment, the content selection engine 180 identifies content that isrelated to an event associated with the user. For example, if an eventassociated with the user is the user’s birthday, the content selectionengine 180 identifies items that may be related to a birthday, such asadvertisements offering discounts to users on their birthdays or contentitems associated with getting older, etc. Additionally, in oneembodiment, the content selection engine 180 identifies items that auser may be interested in. In one embodiment, the content selectionengine 180 parses information in the user’s data log 160 to identifysuch items. For example, the content selection engine may identifycertain user actions, such as bookmarking a webpage associated with acontent item, liking a content item, adding an item in a wish-list or ina virtual shopping-cart, mentioning the item in a wall post, etc., asindicative of the user’s interest in the item. Such items are selectedby the content selection engine 180 to display to users of the socialnetworking system. In another embodiment, the content selection engine180 selects an advertisement advertising an item that the user may beinterested in. Similarly, a voucher or a coupon for an item the user maybe interested in may also be selected by the content selection engine180. In one embodiment, the content selection engine 180 identifiescontent hosted on third-party websites outside the social networkingsystem domain and selects those items to present to a user based on theuser’s predicted life event. Third-party website may include, forexample AMAZON.COM, EBAY.COM, and other websites that host or offer tosell one or more items.

The targeting engine 185 identifies social networking system users todisplay the content selected by the content selection engine 180. In oneembodiment, the targeting engine 185 displays the selected content itemsto the user. For example, if the selected content is an advertisementoffering a discount to the user because of the event associated with theuser, the targeting engine 185 provides the item to the user. On theother hand, if the selected content item is an item the user may want,the targeting engine 185 provides the content item to the user’s friends104, such that the user’s friends may send the item to the user 102 onan event date provided by the event prediction engine 170. For example,if the event associated with a user is his or her birthday, and the itemselected by the content selection engine is a virtual good that the usermay enjoy, the targeting engine 185 sends a link to the user’s friendssuch that the friends may send the virtual good as a gift to the user onhis or her birthday.

In one embodiment, the targeting engine 185 sends a gift suggestion toone or more of the user’s friends. The gift suggestion may identify theuser, the event inferred for the user, and one or more items selected bythe content selection engine 180. The items may be presented as an imagethat may be purchased or shared within the social networking systemand/or may include a link to a website outside of the social networkingsystem. The link may direct the user’s friends to an external websitewhere an item suggested as a gift may be purchased. Additionally, thegift suggestion may include an interface element with which the user’sfriends may share the gift suggestion with others or purchase a portionof the item displayed within the gift suggestion interface. Examples ofthe gift suggestion interface are described in greater detail withreference to FIGS. 5A and 5B.

If the user’s friends provide instructions to send one or more contentitems to the user, the communications engine 195 sends the content itemto the user. In an embodiment wherein the user’s friends may have topurchase an item as a gift for the user, the communications engine 195facilitates the purchase of the item. In another instances, wherein theuser’s friends want to pool a contribution to towards a purchase of anitem, the communications engine 195 may display the amount remaining topurchase an item as a gift to the user. Once the purchase is complete,the communications engine 195 sends the gift to the user.

Targeting Content to Users of the Social Networking System

FIG. 4 illustrates a process in which the social networking systempredicts a event for a user of the social networking system. In oneembodiment, the social networking system executes the method illustratedin FIG. 4 for all users of the social networking system. In anotherembodiment, the process of FIG. 4 is executed for users whose profileinformation has changed.

The process 400 generates 402 a training set used to train a machinelearning model. The process 400 identifies one or more users within thesocial networking system who have undergone a event. For example, if auser profile shows that the user changed marital status information,employment information or home address information, the process 400identifies the user. Additionally the process 400 retrievescommunications data and social network data performed by the user orother users in association with the user. In such an embodiment, theprocess 400 can retrieve communications and action data for a particulartime period before the event is recorded on the user profile. Forexample, the process 400 can retrieve data from a week or a month priorto the event. In another embodiment, time frame and duration of theretrieved data can vary based on the event indicated by the user. Theprocess 400 can retrieve communications and action data from a monthprior to a marital status change, whereas the process 400 can retrievecommunications and action data from two days prior to a change in age.In one embodiment, the process 400 removes or discounts events thatoccur on particular dates. For example, the social networking system canprovide that change in relationship status on April first is not areliable indicator of the event. In such an embodiment, the process 400removes the user data associated with such users. Additionally, theprocess generates 402 a training data based on the retrieved data,whether the user went through a event and type of event.

The process 400 computes 404 the probability of a user undergoing aevent based on the user’s communications and actions within the socialnetworking system and the training data set. In one embodiment, theprocess 400 trains a machine learning model using the training data. Themachine learning model can take into several factors in generating aprediction algorithm, such as the words comprising communicationsassociated with the user, the length of the communication, the frequencyof the communication, the type of actions taken, such as receivingvirtual gifts from other users, creating an event corresponding to theevent date, etc. Responsive to the training set, the machine learningmodel generates a prediction algorithm. Once the process 400 inputscommunication and action data associated with the user the machinelearning model uses the prediction algorithm to compute 404 theprobability of a user undergoing a particular event. Additionally, ifthe user’s probability score is above a provided threshold score, theuser is predicted to go through a event.

The process updates 406 the user profile responsive to the predictionthat the user will go through a event. In one embodiment, the processupdates 406 the user profile such that the updated information is notavailable to the user or other users of the social networking system. Inanother embodiment, the user profile can be updated by adding a value tothe user profile store 305.

The process provides 408 items to the user responsive to the predictionthat the user will go through an event. In one embodiment, the processprovides 408 virtual goods or gifts to the user based on the predictedevent. For example, if the user is predicted to get married, the processcan provide 408 a virtual wedding gift to the user. In anotherembodiment, the process can provide 408 advertisements to the user basedon the predicted event and the advertiser provided targeting criteriafor the advertisement. For example, if an advertiser provides that anadvertisement should only be served to users who will get married, theprocess provides 408 the advertisement to users who are predicted to getmarried. In another embodiment, the process provides 408 the items tousers of the social networking system associated with the user predictedto go through a event. For example, the process 408 can provide links tovirtual wedding gifts to other users, wherein the other users can selectand send the virtual gift to the user predicted to get married. Inanother embodiment, the process serves 408 advertisements to usersassociated with the user predicted to go through a event based onadvertisement criteria. For example if an advertiser provides friends ofa user predicted to get married should be targeted with a particularadvertisement, the user process provides 408 the advertisement to thefriends or users associated with the user predicted to get married.

FIG. 5A illustrates an interface for providing a gift suggestion basedon an event inferred for a target user, according to one embodiment ofthe invention. FIG. 5A illustrates a gift suggestion 502 including textidentifying an inferred life event, such as a birthday, a name of thetarget user, and an identification of the gift suggestion determined bythe social networking system. In one embodiment, the gift suggestion 502also includes a user interface element 504 wherein the viewing user mayadd a custom message and a user interface element 506 enabling theviewing user to share the gift item provided in the gift suggestion 502with the target user.

FIG. 5B illustrates an interface for providing a gift suggestion basedon an event inferred for a target user, in accordance with anotherembodiment of the invention. FIG. 5B illustrates a gift suggestion 508including text identifying an event inferred by the social networkingsystem and a domain wherein a viewing user may purchase a gift to giveto the targeting user. The gift suggestion 508 may include one or morelinks to an external site, wherein each link is for a gift item that thetargeting user may be interested in. In other words, each gift itemidentified by the social networking system may be provided to theviewing user as a link within the gift suggestion 508. The giftsuggestion 508 interface may also include an interface element 510enabling a viewing user to share the gift suggestion 508 with otherusers of the social networking system who may also be interesting inpurchasing a gift for the target user. Summary

The foregoing description of the embodiments of the invention has beenpresented for the purpose of illustration; it is not intended to beexhaustive or to limit the invention to the precise forms disclosed.Persons skilled in the relevant art can appreciate that manymodifications and variations are possible in light of the abovedisclosure.

Some portions of this description describe the embodiments of theinvention in terms of algorithms and symbolic representations ofoperations on information. These algorithmic descriptions andrepresentations are commonly used by those skilled in the dataprocessing arts to convey the substance of their work effectively toothers skilled in the art. These operations, while describedfunctionally, computationally, or logically, are understood to beimplemented by computer programs or equivalent electrical circuits,microcode, or the like. Furthermore, it has also proven convenient attimes, to refer to these arrangements of operations as modules, withoutloss of generality. The described operations and their associatedmodules may be embodied in software, firmware, hardware, or anycombinations thereof.

Any of the steps, operations, or processes described herein may beperformed or implemented with one or more hardware or software modules,alone or in combination with other devices. In one embodiment, asoftware module is implemented with a computer program productcomprising a computer-readable medium containing computer program code,which can be executed by a computer processor for performing any or allof the steps, operations, or processes described.

Embodiments of the invention may also relate to an apparatus forperforming the operations herein. This apparatus may be speciallyconstructed for the required purposes, and/or it may comprise ageneral-purpose computing device selectively activated or reconfiguredby a computer program stored in the computer. Such a computer programmay be stored in a tangible computer readable storage medium or any typeof media suitable for storing electronic instructions, and coupled to acomputer system bus. Furthermore, any computing systems referred to inthe specification may include a single processor or may be architecturesemploying multiple processor designs for increased computing capability.

Embodiments of the invention may also relate to a computer data signalembodied in a carrier wave, where the computer data signal includes anyembodiment of a computer program product or other data combinationdescribed herein. The computer data signal is a product that ispresented in a tangible medium or carrier wave and modulated orotherwise encoded in the carrier wave, which is tangible, andtransmitted according to any suitable transmission method.

Finally, the language used in the specification has been principallyselected for readability and instructional purposes, and it may not havebeen selected to delineate or circumscribe the inventive subject matter.It is therefore intended that the scope of the invention be limited notby this detailed description, but rather by any claims that issue on anapplication based hereon. Accordingly, the disclosure of the embodimentsof the invention is intended to be illustrative, but not limiting, ofthe scope of the invention, which is set forth in the following claims.

What is claimed is:
 1. A computer-implemented method comprising:computing, by a processor in a social networking system and using amachine learning model, a probability score representing whether atarget user will undergo a life event, wherein the machine learningmodel was trained using historical data in a data log describingcommunications over a computer network involving a plurality of users ofthe social networking system and confirmations about the life event forone or more of the plurality of users; determining, by the processor,that the computed probability score is greater than a threshold score;and sending, by the processor and via the social networking system, anadvertisement selected based on the life event for which the computedprobability is greater than the threshold score to the target user. 2.The method of claim 1, wherein the life event comprises a change inmarital status, a change in relationship status, a birthday, a change inemployment status, a graduation, a change in health status, an additionof a new child, or death of a person associated with the user outsidethe social networking system.
 3. The method of claim 1, wherein theadvertisement is selected based on at least one of: an item in thetarget user’s wish list, an item placed in a shopping cart by the targetuser, and a bookmark for a webpage provided by the user and storedwithin the social networking system.
 4. The method of claim 1, whereinthe advertisement includes a link to a merchant site to purchase anitem.
 5. The method of claim 1, wherein the advertisement includesmultiple links, each link associated with a web page to buy an item forthe target user.
 6. The method of claim 1, wherein the advertisementcomprises a discount offer for an item associated with theadvertisement.
 7. The method of claim 1, wherein the advertisementcomprises a user interface permitting a viewing user to share theadvertisement with other users of the social networking system with whomthe target user has established a connection in the social networkingsystem.
 8. The method of claim 1, wherein the advertisement comprises avoucher enabling a viewing user to send the voucher to the target user,the voucher for an item associated with the advertisement.
 9. The methodof claim 1, wherein the advertisement and the notification about thelife event are sent to a plurality of users with whom the target userhas established a connection in the social networking system.
 10. Themethod of claim 1, wherein the advertisement provides an interface forpurchasing a portion of a gift for the target user, wherein the gift isassociated with the advertisement.
 11. A computer program productcomprising a non-transitory computer-readable storage medium containingcomputer program code for: computing, by a processor in a socialnetworking system and using a machine learning model, a probabilityscore representing whether a target user will undergo a life event,wherein the machine learning model was trained using historical data ina data log describing communications over a computer network involving aplurality of users of the social networking system and confirmationsabout the life event for one or more of the plurality of users;determining, by the processor, that the computed probability score isgreater than a threshold score; and sending, by the processor and viathe social networking system, an advertisement along with a notificationabout the life event to a viewing user who is connected to the targetuser in the social networking system.
 12. The computer program productof claim 11, wherein the life event comprises a change in maritalstatus, a change in relationship status, a birthday, a change inemployment status, a graduation, a change in health status, an additionof a new child, or death of a person associated with the user outsidethe social networking system.
 13. The computer program product of claim11, wherein the advertisement is selected based on at least one of: anitem in the target user’s wish list, an item placed in a shopping cartby the target user, and a bookmark for a webpage provided by the userand stored within the social networking system.
 14. The computer programproduct of claim 11, wherein the advertisement includes a link to amerchant site to purchase an item.
 15. The computer program product ofclaim 11, wherein the advertisement includes multiple links, each linkassociated with a web page to buy an item for the target user.
 16. Thecomputer program product of claim 11, wherein the advertisementcomprises a discount offer for an item associated with theadvertisement.
 17. The computer program product of claim 11, wherein theadvertisement comprises a user interface permitting a viewing user toshare the advertisement with other users of the social networking systemwith whom the target user has established a connection in the socialnetworking system.
 18. The computer program product of claim 11, whereinthe advertisement comprises a voucher enabling a viewing user to sendthe voucher to the target user, the voucher for an item associated withthe advertisement.
 19. The computer program product of claim 11, whereinthe advertisement and the notification about the life event are sent toa plurality of users with whom the target user has established aconnection in the social networking system.
 20. A computer programproduct comprising a non-transitory computer-readable storage mediumcontaining computer program code that comprises: a first moduleconfigured to compute, using a machine learning model, a probabilityscore representing whether a target user will undergo a life event,wherein the machine learning model was trained using historical data ina data log describing communications over a computer network involving aplurality of users of a social networking system and confirmations aboutthe life event for one or more of the plurality of users; a secondmodule configured to determine that the computed probability score isgreater than a threshold score; and a third module configured to send,via the social networking system, an advertisement along with anotification about the life event to a viewing user who is connected tothe target user in the social networking system.